package xyz.xmh.pattern.creational.builderpattern;

import xyz.xmh.pattern.creational.builderpattern.inter.Item;

import java.util.ArrayList;
import java.util.List;

/**
 * Meal
 * 套餐
 *
 * @author xuMingHai
 * @since 2021/4/29 星期四 11:20
 */
public class Meal {
    /**
     * 一系列物品的集合
     * 套餐集合被封锁，给外部提供访问方法
     */
    private final List<Item> itemList = new ArrayList<>();

    /**
     * 添加物品的方法
     *
     * @param item 物品
     * @return 是否添加成功
     */
    public boolean addItem(Item item) {
        return itemList.add(item);
    }

    /**
     * 获得所有物品的总价
     *
     * @return 总价
     */
    public float getTotalPrice() {
        // 初始化总价格
        float totalPrice = 0.0F;

        // 遍历所有物品，得到总价
        for (Item item : itemList) {
            // +=物品价格
            totalPrice += item.price();
        }

        return totalPrice;
    }

    /**
     * 查看所有物品
     */
    public void showItems() {
        System.out.println("您当前所点套餐如下：");

        // 使用for循环遍历
        for (int i = 0; i < itemList.size(); i++) {
            // 获取集合下标为i的元素
            Item item = itemList.get(i);
            System.out.println((i + 1) + ".名称：" + item.name() + "\t包装方式：" + item.packing().pack() + "\t价格：" + item.price());

        }
    }

}
